Autonomous systems are systems which can perform desired tasks without continuous human guidance. The degree of autonomy of different systems may vary and different systems can be autonomous in different ways. Some systems can have limited autonomy confined to limited tasks while others can be fully autonomous. As used herein the term “autonomous mission” includes any mission that includes the operation of an autonomous system.
The term “autonomous system” as used herein includes any kind of physical, virtual or other agent which can perform tasks based on a predefined logic without or with some limited degree of human intervention. Accordingly, the term “autonomous system” may refer to mechanical assembly or a component thereof designed for autonomously performing specific tasks such as, for example: a domestic robot designed for cleaning houses, an autonomous excavator designed for autonomously removing soil, a space exploration vehicle, an autonomous unmanned aerial vehicle (UAV) with an onboard autonomous surveillance camera, an unmanned surface vehicle (USV) on a shore patrol mission, a submersible autonomous vehicle, or machinery of a factory assembly line designed for completing one or more tasks (e.g. painting and/or inspecting a passing product), etc.
Additionally, the term “autonomous system” may also include any virtual intelligent agent (or a machine in which such a virtual intelligent agent is embedded) which exhibits a machine with autonomous capabilities. For example, autonomous system may refer to an agent embedded within a regular aircraft providing the aircraft with autonomous capabilities. For instance, enabling the aircraft to autonomously fly to a desired location and drop a load at that location without, or with limited intervention of the pilot.
In order to complete complex autonomous missions, many times, the cooperation and/or resource-sharing between several autonomous systems are required. The autonomous behavior which is needed for completing such missions can be achieved for example, through the combined effort of a plurality of autonomous systems, each system configured for completing one or more specific tasks. For example, an unmanned ground vehicle (UGV) which navigates to a specific location using coordinates provided by a UAV targeting that UGV with an electro optic payload and directing the UGV to its destination.
Each autonomous system participating in the mission is designed and specifically programmed with its specific instructions in order to accomplish its specific tasks. To this end, autonomous mission plans, which contain instructions to the participating autonomous systems in an autonomous mission, are often hardcoded or loaded into an autonomous mission computer which controls the operation of the autonomous system.
In general autonomous missions can be divided into two virtual layers of information: the physical layer and the tactical (or logical) layer. The physical layer defines “where” the mission will take place, or in other words the physical environment in which the system will operate. The tactical layer defines how the system will behave, or in other words what will be the decision-logic used for determining the various courses of action made by the system during its operation.
However, in practice information belonging to both layers is interwoven into the mission in different ways. In some cases missions are mostly terrain-driven where mission planning is almost exclusively map-based and decisions are based on the platform position and status. In other cases missions are time or event-driven, causing the platform to behave according to inputs from external sources. In any case the decision logic of an autonomous system is tied to the expected geographical conditions and/or an expected external input of a specific mission.
Missions which are closely tied to a certain geographical outset and/or to certain external input can perform well in the expected scenario but are almost useless for reuse or modification purposes. An autonomous system designed for performing a task in one specific environment cannot be easily converted to perform a different task in different geographical conditions and/or based on different external input. Often, the decision-logic is created en masse with the geographic pattern, and the two are so inherently intertwined such that any attempt to separate these virtual layers will result in the de-facto re-planning of the mission. Furthermore, due to the strong connection between the two intertwined physical and logical layers, modifying a task assigned to an autonomous system, in real-time during the execution of a mission, when the system is active—is practically impossible. This problem becomes more complicated where a number of autonomous robots coordinate, each performing specific tasks, in order to complete a desired mission. Instead, different autonomous systems are specifically reprogrammed and adapted to the new tasks, a process which is cumbersome and time consuming.